class AbstractExpression:
    def interpret(self, context):
        pass

class TerminalExpression(AbstractExpression):
    def interpret(self, context):
        return "Terminal expression result"

class NonTerminalExpression(AbstractExpression):
    def __init__(self, exp1, exp2):
        self.exp1 = exp1
        self.exp2 = exp2

    def interpret(self, context):
        return self.exp1.interpret(context) + self.exp2.interpret(context)

class Context:
    def __init__(self, exp):
        self.exp = exp

    def praise(self, info):
        print(f"Praise: {info}")

    def on_value(self):
        return self.exp.interpret(self)

class Client:
    def __init__(self):
        self.context = Context(NonTerminalExpression(TerminalExpression(), TerminalExpression()))

    def main(self):
        self.context.praise("Client")
        print(self.context.on_value())

# Usage
client = Client()
client.main()

'''
代码实现：
Praise: Client
Terminal expression resultTerminal expression result
'''